<?php
function debug()
{
	$args		= func_get_args();
	$dbt		= debug_backtrace();
	$strDebug	= '';
	
	array_shift($dbt); //remove this trace
	$arFile = array_shift($dbt); // get the trace that have file and line
	
	$line		= $arFile['line'];
	$file		= $arFile['file'];
	$funct		= $dbt[0]['function'];
	
	$strDebug = '<span style=\'background: khaki;text-align:left;font-size:.9em;\'>';
	$strDebug.= $file.' - <b>'.$funct.'()</b> (<b>Line: '.$line.'</b>)';
	$strDebug.= '</span>';
	$strDebug.= '<pre>';
	
	foreach($args as $i => $_args)
	{
		$strDebug.= '<span';
		if($i%2) { $strDebug.= ' style=\'background-color:#ccc\''; }
		else { $strDebug.= ' style=\'background-color:#ddd\''; }
		$strDebug.= '>';
		$strDebug.= print_r($_args,true).'<br /><br />';
	}
	
	$strDebug.= "</pre></div>";
	
	return $strDebug;
}
function debug1()
{
	$dbt		= debug_backtrace();
	$strDebug	= '';
	$j			= 0;
	
	foreach($dbt as $arError)
	{
		$file 	= $arError['file'];
		if($file != __FILE__)
		{
			$line   = $arError['line'];
			$funct	= $arError['function'];
			$args	= $arError['args'];
			$class	= isset($arError['class']) ? $arError['class'] : null;
			$type	= isset($arError['type']) ? $arError['type'] : null;
			$j++;

			$strDebug.= '<span style=\'background: khaki;text-align:left;font-size:.9em;\'>';
			$strDebug.= '['.$j.'] '.$file.' - <b>'.$funct.'()</b> (<b>Line: '.$line.'</b>)';
			$strDebug.= '</span>';
			$strDebug.= '<pre>';

			foreach($args as $i => $_args)
			{
				$strDebug.= '<span';

				if($i%2) { $strDebug.= ' style=\'background-color:#ccc\''; }
				else { $strDebug.= ' style=\'background-color:#ddd\''; }
				$strDebug.= '>';

				$strDebug.= '>> <b>['.$i.']</b><br />';
				$strDebug.= print_r($_args,true).'<br /><br />';
			}

			$strDebug.= '</pre>';
			$strDebug.= '<hr>';
		}
	}
	return $strDebug;
}

function x()
{
	$args = func_get_args();
	echo debug($args);
}
function x1()
{
	$args = func_get_args();
	echo debug1($args);
}
function xd()
{
	$args = func_get_args();
	x($args);
	die;
}
function xd1()
{
	$args = func_get_args();
	x1($args);
	die;
}
?>